#ifndef KMYSTREAM_H
#define KMYSTREAM_H

#include "KmyTypedef.h"
#include "KmyStructDef.h"
#include <string>
using namespace std;

class KmyStream
{
public:
    KmyStream(u8* data, int length);

    /** 删除数据 */
    void finalize();

    void initialize(u8* data, int length);
    /** 读取1行字符（开头会去掉空格和无效字符 */
    string readLine();

    /** 读取1个字符串（开头会去掉空格和无效字符 */
    string readString();
    char getChar();

    /** 自带2字节对齐 */
    short getShort();

    /**  自带4字节对齐 */
    int getInt();

    /** 自带4字节对齐 */
    float getFloat();

    /** 获取流指针的位置 */
    int getOffset();

    /** 获取1行字符串（数据流方式 */
    St_Buff* readLineBuff();

    /** 获取指定长度的数据 */
    St_Buff* readBuff(int size);

    /** 获取1个Utf8字符串,遇回车停止 */
    St_Buff* readUtf8StringBuff();
private:
    u8* data;
    int length;
    int offset;
};

#endif // KMYSTREAM_H
